// source --> https://www.okiflex.com.br/wp-content/plugins/new-dgm-cart/front-end/js/dgm-cart.js?ver=1605012192 (function($){ // 'use strict'; var dgmCart = { modal : function( action ){ if ( action == 'close' ) { $('.product-list-cart').removeClass('open'); } else if ( action == 'open' ) { $('.product-list-cart').addClass('open'); } else { $('.product-list-cart').toggleClass('open'); } }, notify : function( messageNotify ){ var defaultNotify = { message: '', type: 'alert' } var settingsNotify = $.extend({}, defaultNotify, messageNotify ); new Noty({ layout: dgm_cart_js.notification, text: settingsNotify.message, type: settingsNotify.type, theme: 'sunset', timeout: 5000, }).show(); }, addProduct : function( element, quantity ){ var elementQtd = parseInt( quantity ) || 1; var elementData = {} for ( var attr_data in dgm_cart_js.attrs_data ) { elementData[ dgm_cart_js.attrs_data[attr_data] ] = $(element).data( dgm_cart_js.attrs_data[attr_data] ); console.log( dgm_cart_js.attrs_data[attr_data] ); console.log( (element).data( dgm_cart_js.attrs_data[attr_data] ) ); } console.log( elementData ); var alertNotify = { message: '🛒 '+ $(element).data( 'product-title' ) +' adicionado ao carrinho', type: 'success' } this.notify( alertNotify ); dgmCartData.FormatCookieData( elementData, elementQtd ); }, updateProduct : function( cart_key, quantity ){ var cartData = dgmCartData.getCartCookie(); if ( cartData[cart_key] ) cartData[cart_key]['quantity'] = parseInt( quantity ) || 1; dgmCartData.setCartCookie( cartData ); }, removeProduct : function( cart_key ){ var cartData = dgmCartData.getCartCookie(); var productDel = false; if ( cartData[cart_key] ) { productDel = cartData[cart_key]; delete cartData[cart_key]; } if ( productDel ) { console.log( productDel ); var alertNotify = { message: productDel['product-title'] +' removido do carrinho', type: 'alert' } this.notify( alertNotify ); } dgmCartData.setCartCookie( cartData ); var productRow = $( '.pr'+ cart_key ).parent().parent(); productRow.fadeOut('fast', function() { dgmCartWidget.update(); }); $('#pro'+ cart_key ).fadeOut('fast', function() { if ( dgmCartData.getCartCount() == 0 ) { document.location.reload(true); } }); dgmCartWidget.update(); }, editQauntity : function( cart_key, quantity ){ var regexNumber = /[a-zA-Z]/g; if ( regexNumber.test( quantity ) ) { quantity = quantity.replace( regexNumber, '' ); } quantity = quantity > 0 ? quantity : 1 ; if ( quantity != null && !isNaN( quantity ) ) { this.updateProduct( cart_key, quantity ); this.syncCart( cart_key ); } }, syncCart : function( cart_key ){ var cartData = dgmCartData.getCartCookie(); if ( cartData[cart_key] ) { var quantity = cartData[cart_key]['quantity']; $('#o'+ cart_key ).val( quantity ); $('.l'+ cart_key ).val( quantity ); } } }; var dgmCartData = { setCookie : function( cookie_name, cookie_value, cookie_exdays ){ var expires = ''; if ( cookie_exdays ) { var d = new Date(); d.setTime( d.getTime() + ( cookie_exdays * 24 * 60 * 60 * 1000 ) ); var expires = '; expires='+ d.toUTCString(); } document.cookie = cookie_name + '=' + cookie_value + expires + '; path=/'; }, getCookie : function( cookie_name ){ var name = cookie_name +'='; var decodedCookie = decodeURIComponent( document.cookie ); var ca = decodedCookie.split(';'); for( var i = 0; i < ca.length; i++ ) { var c = ca[i]; while ( c.charAt(0) == ' ' ) { c = c.substring(1); } if ( c.indexOf( name ) == 0 ) { return c.substring( name.length, c.length ); } } return false; }, deleteCookie : function( cookie_name ){ this.setCookie( cookie_name, '', -1 ); }, getCartCookie : function(){ var cartCookie = this.getCookie(dgm_cart_js.cookie_name); // HEY! return JSON.parse( cartCookie ) || []; }, setCartCookie : function( products ){ var cartProducts = JSON.stringify( products ); this.setCookie(dgm_cart_js.cookie_name, cartProducts); // HEY! }, deleteCartCookie : function(){ this.setCookie(dgm_cart_js.cookie_name, null, -1); // HEY! }, FormatCookieData : function( data, quantity ){ var update = false; var objData = {}; var objUniqueValues = {}; var cartData = this.getCartCookie() || []; for ( var attr_data in dgm_cart_js.attrs_data ){ var attr_name = dgm_cart_js.attrs_data[attr_data]; if ( data[ attr_name ] ) { objData[attr_name] = data[ attr_name ]; } } for ( var objUniqueValue in dgm_cart_js.single_data ){ var single_data_name = dgm_cart_js.single_data[objUniqueValue]; if ( objData[single_data_name] ) { objUniqueValues[single_data_name] = objData[single_data_name]; } } for ( var index in cartData ) { if ( cartData[index] ) { var cartItem = cartData[index]; var objDataCart = {}; for ( var objUniqueValueCart in dgm_cart_js.single_data ){ var single_data_name = dgm_cart_js.single_data[objUniqueValueCart]; if ( cartItem[single_data_name] ) { objDataCart[single_data_name] = cartItem[single_data_name]; } } if ( JSON.stringify( objUniqueValues ) === JSON.stringify( objDataCart ) ) { cartItem.quantity += parseInt( quantity ); update = true; break; } } } if ( !update ) { cartData.push( objData ); } this.setCartCookie( cartData ); dgmCartWidget.update(); }, getCartCount : function(){ var cartData = this.getCartCookie() || []; var count = 0; for( var index in cartData ) { if ( cartData[index] ){ count++; } } return count; } }; var dgmCartWidget = { update : function(){ var html = ''; var count = dgmCartData.getCartCount(); var dataCart = dgmCartData.getCartCookie(); var qtdDataCart = Object.keys(dataCart).length; var elementList = $('.dgm-widget-lista-produtos'); if ( count > 0 ) { html += ""; html += ""; html += ""; html += ""; html += ""; html += ""; html += ""; html += ""; html += ""; for ( var cartKey = 0; cartKey < qtdDataCart; cartKey++ ) { if ( dataCart[cartKey] ) { html += ""; html += ""; html += ""; html += ""; html += ""; } } html += ""; html += "
ProdutoQtd.Ação
"; html += dgm_cart_js.add_link ? "" : ""; html += dataCart[cartKey]['product-title']; html += dgm_cart_js.add_link ? "" : ""; if ( dataCart[cartKey]['items-data-show'] ) { var items_data_show = dataCart[cartKey]['items-data-show'].split(','); html += "
"; $.each(items_data_show, function(array_key, array_value) { if ( dataCart[cartKey][array_value] ) html += ""+ dataCart[cartKey][array_value] +""; }); html += "
"; } html += "
Remover "+ dataCart[cartKey][
"; } else { html += "Nenhum item no carrinho"; } elementList.html(html); // Atualiza o texto do carrinho $('.dgm-cart-text').html( count + " produto(s) em sua lista"); // Atualiza o texto da contagem de produtos $('.dgm-cart-ball-count').html(count); } }; var dgmCartContact = { sendEmail : function(){ var form_fields = { products : dgmCartData.getCartCookie() }; var form_fields_user_array = $('.dgm-cart-user-data').serializeArray(); var form_fields_user = {}; $.each(form_fields_user_array, function() { if ( form_fields_user[this.name] !== undefined ) { if ( !form_fields_user[this.name].push ) { form_fields_user[this.name] = [form_fields_user[this.name]]; } form_fields_user[this.name].push(this.value || ''); } else { form_fields_user[this.name] = this.value || ''; } }); form_fields.user = form_fields_user; $('.loader-content-dgm').removeClass('hidden-dgm-cart'); form_fields.action = 'dgm_cart_send_email'; $.ajax({ url: dgm_cart_js.ajax_url, type: 'POST', data: form_fields, success: function(data){ if ( data == 'Sucesso' ) { $('.dgm-cart').fadeOut('normal', function() { $('#content h1').fadeOut('fast'); $(this).html( dgm_cart_js.message_sucess ).fadeIn(); $('.loader-content-dgm').addClass('hidden-dgm-cart'); dgmCartData.deleteCartCookie(); dgmCartWidget.update(); }); } else if( data == 'Erro' ) { $('.dgm-cart').fadeOut('normal', function() { $('#content h1').fadeOut('fast'); $(this).html(dgm_cart_js.message_error).fadeIn(); }); } }, error: function(xhr,status,error){ alert( 'Não foi possivel receber sua solicitação agora, tente novamente mais tarde.' ); } }); }, validateForm : function(){ var message = ''; var submit = true; $('[req=true]').each(function() { if ( $(this).val() == '' ) { $(this).parent().addClass('wrong'); submit = false; message = 'Atenção: Preencha os campos em vermelho!\n\n'; } }); if ( $('.ecorreio') ) { var regexValidate = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; if( !regexValidate.test( String( $('.ecorreio').val().toLowerCase() ) ) ){ $(this).addClass('wrong'); submit = false; message += 'Atenção: Forneça um endereço de email válido!\n\n'; } } if ( $('.email').val() != '' ) { submit = false; message = 'Sistema protegido contra SPAM'; } if ( !submit ) { if ( $('.wrong').length > 0 ) { $('.wrong').bind('blur', function() { $(this).removeClass('wrong'); }); } alert(message); } return submit; } }; var dgmCartAnimate = { shake : function( interval, distance, times, element ){ interval = typeof interval == 'undefined' ? 100 : interval; distance = typeof distance == 'undefined' ? 10 : distance; times = typeof times == 'undefined' ? 3 : times; $(element).css('position', 'relative'); for (var i = 0; i < (times + 1); i++) { $(element).animate({ left: ( i % 2 == 0 ? distance : distance * -1 ) }, interval); } return $(element).animate({left: 0}, interval); }, bounce : function( interval, distance, times, element ) { interval = typeof interval == 'undefined' ? 100 : interval; distance = typeof distance == 'undefined' ? 10 : distance; times = typeof times == 'undefined' ? 3 : times; $(element).css('position', 'relative'); for (var i = 0; i < (times + 1); i++) { $(element).animate({ bottom: ( i % 2 == 0 ? distance : distance * -1 ) }, interval); } return $(element).animate({bottom: 0}, interval); } }; $(document).ready(function() { $(document) .on('click', '.dgm-widget-add-product', function(event) { event.preventDefault(); var elementData = $(this).data(); var product_id = elementData['product-id']; var product_title = elementData['product-title']; var product_quantity = elementData['quantity']; product_quantity = parseInt( product_quantity ) || 1; for ( cart_title in dgm_cart_js.cart_title ) { if ( elementData[cart_title] ) { product_title += '•' + elementData[cart_title]; } } dgmCart.addProduct( $(this), product_quantity ); dgmCartWidget.update(); }) .on('click', '.envia-orcamento', function(event) { event.preventDefault(); if ( dgmCartContact.validateForm() ) { dgmCartContact.sendEmail(); } }) .on('click', '.remove-product-cart', function(event) { event.preventDefault(); var cartKey = $(this).data('cart-key'); dgmCart.removeProduct( cartKey ); }) .on('keyup', '.dgm-cart-qty', function(event) { event.preventDefault(); var cartKey = $(this).data('cart-key'); var Quantity = $(this).val(); Quantity = parseInt( Quantity ); dgmCart.editQauntity( cartKey, Quantity ); }) .on('change', '.dgm-cart-qty', function(event) { event.preventDefault(); var cartKey = $(this).data('cart-key'); var Quantity = $(this).val(); Quantity = parseInt( Quantity ); dgmCart.editQauntity( cartKey, Quantity ); }) .on('click', '.dgm-cart-fechar-modal-carrinho', function(event) { event.preventDefault(); dgmCart.modal('close'); }) .on('click', '.bubble-dgm-cart', function(event) { event.preventDefault(); dgmCart.modal('open'); }) .on('click', '.dgm-cart-modal-cart-button', function(event) { event.preventDefault(); dgmCart.modal(); }); dgmCartWidget.update(); }); })(jQuery);